home *** CD-ROM | disk | FTP | other *** search
- /****i* SOURCE_FILE/INFO
- *
- * NAME
- * PublishServerManager.js
- *
- * USAGE
- * Part of WPS JavaScript Library.
- *
- * COPYRIGHT
- * Copyright ⌐ 2000-2001 Website Pros, Inc.
- * All Rights Reserved.
- *
- * This is an unpublished work protected by Website Pros, Inc.
- * as a trade secret, and is not to be used or disclosed except as
- * expressly provided in a written license agreement executed by
- * you and Website Pros, Inc.
- *
- * <copyright@websitepros.com>
- *
- * NOTES
- * JavaScript code.
- *
- *****/
- if (!IS.isModuleInitialized("IS.NOF.PUBLISH.PublishServerManager"))
- {
- /**
- * Class PublishServerManager
- *
- * External dependencies: NOF.UTIL.ResourceBundle, NOF.UTIL.DefaultLocale, NOF.UTIL.Iterator
- **/
- function NOF_PublishServerManager( ) {
- //NOF.util_logging_ConsoleLogger_global.info("PublishSettingsManager begin");
- this.__proto__ = NOF_PublishServerManager.prototype;
- this.profileList = null;
- this.publishServerList = null;
- //NOF.util_logging_ConsoleLogger_global.info("PublishSettingsManager end");
- return this;
- }
- {
- var members = NOF_PublishServerManager.prototype;
- members.CLASS_NAME = "PublishServerManager";
- members.PATH_SEPARATOR = "\\";
-
- var methods = NOF_PublishServerManager.prototype;
-
- /**
- * get the list (key, value) of the available server types
- * (iterates the FSI/PublishSettings subfolders and reads from the corresponding resource
- * the value of the property "publishServer.type.Label"
- **/
- methods.getPublishServerTypes = function () {
- //NOF.util_logging_ConsoleLogger_global.info("getProfileList begin");
-
- if (this.profileList == null) {
- this.profileList = new Array();
- var iter = new ActiveXObject(NOF.ProgId.FSIDirIterator);
- iter.DefineSearch("./PublishSettings", '*');
- var fileName;
- var rs;
- for (;;) {
- var p = iter.GetNext();
- if (p.length <= 0) {
- break;
- }
- fileName = p.substring(p.lastIndexOf(this.PATH_SEPARATOR) + 1, p.length);
- if ((fileName.indexOf(".") > -1) || (fileName == "lib")) {
- continue;
- }
- //NOF.util_logging_ConsoleLogger_global.info("Type # " + p + ", fileName=" + fileName);
- rs = NOF.UTIL.ResourceBundle.getBundle("PublishSettings/" + fileName + "/" + fileName, NOF.UTIL.DefaultLocale);
- if (rs != null) {
- this.profileList[this.profileList.length] = [ rs.getProperty("publishServer.type.Label"), fileName ];
- }
- }
- }
-
- return new NOF.UTIL.Iterator(this.profileList);
- }
-
- /**
- * getAllPublishServers
- **/
- methods.getAllPublishServers = function () {
- if (this.publishServerList == null) {
- this.publishServerList = new Array();
-
- var pubMan = new ActiveXObject(NOF.ProgId.PublishServerManager);
- var servers = pubMan.GetAllPublishServers();
- for (var i = 0; i < servers.Count(); i++) {
- var server = servers.GetNext();
- if (server) {
- this.publishServerList[this.publishServerList.length] = new NOF.PUBLISH.PublishServer(server);
- }
- }
- pubMan = null;
-
- var temp = new NOF.PUBLISHSETTINGS.PublishConfigFile("temp");
- var cList = temp.getConfigFiles();
- //NOF.util_logging_ConsoleLogger_global.info("Global profiles " + cList.length);
- for (var i = 0; i < cList.length; i++){
- //make as PublishServer...
- //NOF.util_logging_ConsoleLogger_global.info("Global profile: " + cList[i]);
- var glSrv = new NOF.PUBLISH.PublishServer( cList[i] );
- //glSrv.setName(cList[i]);
- //try { alert("profile xml=" + cList[i] + ", name=" + glSrv.getName()); } catch(e) {alert(e.message);}
- this.publishServerList[this.publishServerList.length] = glSrv;
- }
- }
- return new NOF.UTIL.Iterator(this.publishServerList);
- }
-
- /**
- * addServer
- **/
- methods.addServer = function (/*PublishServer*/ publishServer) {
- this.publishServerList[this.publishServerList.length] = publishServer;
- }
-
- /**
- * createServer
- **/
- methods.createServer = function (/*String*/ pName, /*boolean*/ isGlobal) {
- //TODO: add server to list
- if (!isGlobal) {
- var pubMan = new ActiveXObject(NOF.ProgId.PublishServerManager);
- var server = pubMan.NewPublishServer(pName);
- pubMan = null;
- return new NOF.PUBLISH.PublishServer(server); //NOF_PublishServer(server);
- //return server;
- } else {
- var newServerName = (pName.indexOf("Global ") == 0) ? pName : "Global " + pName; //NOF.Util.generateGuid(pName);
- //pName + "_" + (new Date()).getTime() + parseInt(Math.random() * 1000);
- var ps = new NOF.PUBLISH.PublishServer(newServerName); //NOF_PublishServer(pName);
- ps.setName(pName);
- return ps;
- }
- }
-
- /**
- * deleteServer
- **/
- methods.deleteServer = function (/*PublishServer*/ publishServer) {
- for (var i = 0; i < this.publishServerList.length; i++) {
- if (this.publishServerList[i].getName() == publishServer.getName()) {
- this.publishServerList.removeItem(i);
- break;
- }
- }
- //publishServer.remove();
- if (publishServer.isGlobal()) {
- publishServer.getPublishServer().deleteConfigFile();
- } else {
- var pubMan = new ActiveXObject(NOF.ProgId.PublishServerManager);
- pubMan.DeleteServer(publishServer.getPublishServer());
- pubMan = null;
- }
- }
-
- /**
- * GetCurrentServer
- **/
- methods.getCurrentServer = function () {
- var pubMan = new ActiveXObject(NOF.ProgId.PublishServerManager);
- var server = pubMan.CurrentServer;
- pubMan = null;
- //NOF.UTIL.LOGGING.getLogger("PublishSettings").info("typeof server " + typeof(server), "PublishServerManager", "getCurrentServer");
- return new NOF.PUBLISH.PublishServer(server); //NOF_PublishServer(server);
- }
-
- /**
- * SetCurrentServer
- **/
- methods.setCurrentServer = function (/*PublishServer*/ publishServer) {
- if (!publishServer.isGlobal()) {
- var pubMan = new ActiveXObject(NOF.ProgId.PublishServerManager);
- pubMan.CurrentServer = publishServer.getPublishServer();
- pubMan = null;
- }
- }
-
- /**
- * GetPrimaryServer
- **/
- methods.getPrimaryServer = function () {
- var pubMan = new ActiveXObject(NOF.ProgId.PublishServerManager);
- var server = pubMan.PrimaryServer;
- pubMan = null;
- //NOF.UTIL.LOGGING.getLogger("PublishSettings").info("typeof server " + typeof(server), "PublishServerManager", "getCurrentServer");
- return server ? new NOF.PUBLISH.PublishServer(server) : null;
- }
-
- /**
- * SetPrimaryServer
- **/
- methods.setPrimaryServer = function (/*PublishServer*/ publishServer) {
-
- // When delete primary profile
- if (publishServer == null) {
- var pubMan = new ActiveXObject(NOF.ProgId.PublishServerManager);
- pubMan.PrimaryServer = null;
- pubMan = null;
-
- return;
- }
-
- if (publishServer && !publishServer.isGlobal()) {
- var pubMan = new ActiveXObject(NOF.ProgId.PublishServerManager);
- pubMan.PrimaryServer = publishServer.getPublishServer();
- pubMan = null;
- }
- }
-
- /**
- * GetVersionsManagerServer
- **/
- methods.getVersionsManagerServer = function () {
- var pubMan = new ActiveXObject(NOF.ProgId.PublishServerManager);
- var server = pubMan.VersionsManagerServer;
- pubMan = null;
- //NOF.UTIL.LOGGING.getLogger("PublishSettings").info("typeof server " + typeof(server), "PublishServerManager", "getCurrentServer");
- return server ? new NOF.PUBLISH.PublishServer(server) : null;
- }
-
- /**
- * SetVersionsManagerServer
- **/
- methods.setVersionsManagerServer = function (/*PublishServer or -1*/ publishServer) {
- var pubMan = new ActiveXObject(NOF.ProgId.PublishServerManager);
- if (publishServer == -1)
- pubMan.VersionsManagerServer = -1;
- else if (!publishServer)
- pubMan.VersionsManagerServer = null;
- else if (!publishServer.isGlobal())
- pubMan.VersionsManagerServer = publishServer.getPublishServer();
- pubMan = null;
- }
-
- /**
- * UsePrimaryServerAsVersionsManager
- **/
- methods.usePrimaryServerAsVersionsManager = function () {
- var pubMan = new ActiveXObject(NOF.ProgId.PublishServerManager);
- var result = pubMan.UsePrimaryServerAsVersionsManager;
- pubMan = null;
- return result;
- }
-
- /**
- * Register local as global.
- **/
- methods.registerLocalAsGlobal = function (/*PublishServer*/ publishServer) {
- if (!publishServer.isGlobal()) {
- var pName = this.getValidProfileName("Global " + publishServer.getName());
- //log.info("RegisterAsGlobal: newName: " + pName);
-
- publishServer.getPublishServer().SaveGlobal(pName);
-
- //log.info("RegisterAsGlobal: saved as Global");
-
- var temp = new NOF.PUBLISHSETTINGS.PublishConfigFile("temp");
- var cList = temp.getConfigFiles();
- for (var i = 0; i < cList.length; i++) {
- if (cList[i] == pName) {
- var newSrv = new NOF.PUBLISH.PublishServer( cList[i] );
- this.addServer(newSrv);
-
- return newSrv;
- }
- }
- }
- }
-
- /**
- * Register as global as local.
- **/
- methods.registerGlobalAsLocal = function (/*PublishServer*/ publishServer) {
- if (publishServer.isGlobal()) {
- var pName = this.getValidProfileName(publishServer.getName());
- var newSrv = this.createServer( pName, false );
- newSrv.getPublishServer().GetGlobal(publishServer.publishProfile.configFileName); /*publishServer.getName()*/
-
- this.addServer(newSrv);
-
- return newSrv;
- }
- }
-
- /**
- * Register as global as local with edit.
- **/
- methods.loadLocalFromGlobal = function (/*PublishServer*/ publishServer, /*PublishServer*/ publishServerLocal) {
- if (publishServer.isGlobal()) {
- var origName = publishServerLocal.getName();
- try {
- publishServerLocal.getPublishServer().GetGlobal(publishServer.publishProfile.configFileName); /*publishServer.getName()*/
- publishServerLocal.setName(origName);
- } catch(e) {
- //alert(e.message);
- }
- return publishServerLocal;
- }
- }
-
- /**
- *
- **/
- methods.getAssociatedProfile = function (/*PublishServer*/ publishServer) {
- var assocProfile = null;
-
- var pssIter = this.getAllPublishServers();
- if (publishServer.isGlobal()) {
- var pssLocal;
- for (; pssIter.hasNext();) {
- pssLocal = pssIter.next();
- if (!pssLocal.isGlobal() && (publishServer.publishProfile.configFileName == pssLocal.getGlobalFileName())) {
- assocProfile = pssLocal;
- break;
- }
- }
- } else {
- //is local (in-site) profile
- if (publishServer.hasGlobalProfile()) {
- var globalFileName = publishServer.getGlobalFileName();
- var pssGlobal;
- for (; pssIter.hasNext();) {
- pssGlobal = pssIter.next();
- if (pssGlobal.isGlobal() && (globalFileName == pssGlobal.getGlobalFileName())) {
- assocProfile = pssLocal;
- break;
- }
- }
- }
-
- }
-
- return assocProfile;
- }
-
-
- /**
- * getValidProfileName
- **/
- methods.getValidProfileName = function (/*string*/ candidateName) {
-
- var pName = candidateName;
-
- var psList = this.publishServerList;
- var listLength = psList.length;
- var current = -1;
- var value;
- var server;
- var name;
- for (var i = 0; i < listLength; i++) {
- server = psList[i];
- if (server) {
- name = server.getName();
- if (name.substr(0, pName.length) == pName) {
- name = name.substr(pName.length);
- if (name.length) {
- value = name - 0;
- } else {
- value = 0;
- }
- if (value > current) {
- current = value;
- }
- }
- }
- }
-
- if (current != -1) {
- //current = 0;
- pName = pName + (current + 1);
- }
-
- return pName;
- }
-
-
- }
-
- NOF.PUBLISH.__proto__.PublishServerManager = NOF_PublishServerManager;
- }